﻿#pragma once
#ifndef WRDATASAVESTATE_H
#define WRDATASAVESTATE_H

#include "../../WRSoft-Utility/Structs/WRFlags.h"

//表示数据存储状况。
class WRDataSaveState
{
private:
    WRFlags m_flags;
    WR32s m_reserved;
    WR64s m_fileSize;
    WR64s m_diskFree;

    static const WR32u EnabledDataField = 1U;
    static const WR32u RunningDataField = 2U;
    static const WR32u AvailableDataField = 4U;

public:
    //初始化数据存储状况。
    inline WRDataSaveState(void)
    {
        //add code here
    }

    //获取是否启用存储。
    inline bool enabled(void) const
    {
        return m_flags.read(EnabledDataField);
    }
    //设置是否启用存储。
    inline void enabled(bool value)
    {
        m_flags.write(EnabledDataField, value);
    }

    //获取是否正在存储。
    inline bool running(void) const
    {
        return m_flags.read(RunningDataField);
    }
    //设置是否正在存储。
    inline void running(bool value)
    {
        m_flags.write(RunningDataField, value);
    }

    //获取是否可以存储。
    inline bool available(void) const
    {
        return m_flags.read(AvailableDataField);
    }
    //设置是否可以存储。
    inline void available(bool value)
    {
        m_flags.write(AvailableDataField, value);
    }

    //获取文件大小（只有存储中该值才有效）。
    inline WR64s fileSize(void) const
    {
        return m_fileSize;
    }
    //设置文件大小。
    inline void fileSize(WR64s value)
    {
        m_fileSize = value;
    }

    //获取磁盘剩余。
    inline WR64s diskFree(void) const
    {
        return m_diskFree;
    }
    //设置磁盘剩余。
    inline void diskFree(WR64s value)
    {
        m_diskFree = value;
    }
};

#endif // WRDATASAVESTATE_H

